<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Object-oriented modeling</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Object-oriented_modeling"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Object-oriented_modeling rootpage-Object-oriented_modeling skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Object-oriented modeling</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style>
<p><b>Object-oriented modeling</b> (OOM) is an approach to modeling a system as <a href="Object_(programming)" class="mw-redirect" title="Object (programming)">objects</a>. It is primarily used for <a href="Software_development" title="Software development">developing</a> <a href="Software" title="Software">software</a>, but can be and is used for other types of systems such as <a href="Business_process" title="Business process">business process</a>. <a href="Unified_Modeling_Language" title="Unified Modeling Language">Unified Modeling Language</a> (UML) and <a href="SysML" class="mw-redirect" title="SysML">SysML</a> are two popular international standard languages used for OOM.<sup id="cite_ref-Jacobsen_1992_https://archive.org/details/objectorientedso00jaco/page/15_15,199_1-0" class="reference"><a href="#cite_note-Jacobsen_1992_https://archive.org/details/objectorientedso00jaco/page/15_15,199-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p>For <a href="Software_development" title="Software development">software development</a>, OOM is used for <a href="Software_requirements_analysis" class="mw-redirect" title="Software requirements analysis">analysis</a> and <a href="Software_design" title="Software design">design</a> and is a key practice of <a href="Object-oriented_analysis_and_design" title="Object-oriented analysis and design">object-oriented analysis and design</a> (OOAD). The practice is primarily performed during the early stages of the development process although can continue for the <a href="Software_life_cycle" class="mw-redirect" title="Software life cycle">life</a> of a system. The practice can be divided into two aspects: the modeling of dynamic behavior like <a href="Use_cases" class="mw-redirect" title="Use cases">use cases</a> and the modeling of static structures like <a href="Class_(programming)" class="mw-redirect" title="Class (programming)">classes</a> and <a href="Software_component" title="Software component">components</a>; generally as <a href="Visual_modeling" title="Visual modeling">visual modeling diagrams</a>.
</p><p>The benefits of using OOM include:
</p>
<dl><dt>Efficient and effective communication</dt>
<dd>Users typically have difficulties understanding <a href="Technical_documentation" title="Technical documentation">technical documentation</a> and <a href="Source_code" title="Source code">source code</a>. Visual diagrams can be more understandable and can allow users and stakeholders to give developers feedback on the appropriate requirements and structure of the system. A key goal of the object-oriented approach is to decrease the "semantic gap" between the system and the real world, and to have the system be constructed using terminology that is almost the same as the stakeholders use in everyday business. OOM is an essential tool to facilitate this.</dd></dl>
<dl><dt>Useful and stable abstraction</dt>
<dd>Modeling supports <a href="Programming" class="mw-redirect mw-disambig" title="Programming">coding</a>. A goal of most modern <a href="Software_development_methodology" class="mw-redirect" title="Software development methodology">development methodologies</a> is to first address "what" questions and then address "how" questions, i.e. first determine the functionality the system is to provide without consideration of implementation constraints, and then consider how to make specific solutions to these abstract requirements, and refine them into detailed designs and codes by constraints such as technology and budget. OOM enables this by producing <a href="Abstraction_(computer_science)" title="Abstraction (computer science)">abstract</a> and accessible descriptions of requirements and designs as models that define their essential structures and behaviors like processes and objects, which are important and valuable development assets with higher abstraction levels above concrete and complex source code.</dd></dl>
<div class="mw-heading mw-heading2"><h2 id="Language">Language</h2></div>
<p>The notation used for modelling is a language of graphical elements that imply design based on convention. Many conventions have been devised and they vary in formality. It may be relatively informal in nature, or consist of predefined graphical templates or consist of a formally defined <a href="Grammar" title="Grammar">grammar</a>.
</p><p>A modeling language is often associated with a object-oriented <a href="Software_development_methodology" class="mw-redirect" title="Software development methodology">software development methodology</a> since a methodology often spawns a language. The modeling language defines the elements of a model, such as <a href="Class_(programming)" class="mw-redirect" title="Class (programming)">classes</a>, <a href="Method_(programming)" class="mw-redirect" title="Method (programming)">methods</a>, <a href="Property_(programming)" title="Property (programming)">properties</a>, etc. The methodology defines the steps developers take to create and maintain a software system in relation to the models. For example, the <a href="Booch_method" class="mw-redirect" title="Booch method">Booch method</a> may refer to <a href="Grady_Booch" title="Grady Booch">Grady Booch</a>'s standard for diagramming, his methodology, or both. Or the Rumbaugh <a href="Object_Modeling_Technique" class="mw-redirect" title="Object Modeling Technique">Object Modeling Technique</a> is both a set of diagrams and a process model for developing object-oriented systems.
</p><p>In the early years of the object-oriented development there were several competing modeling and methodology variants. Booch and Rumbaugh were two of the most popular, and <a href="Ivar_Jacobson" title="Ivar Jacobson">Ivar Jacobson</a>'s Objectory, Shlaer-Mellor, and Yourdon-Coad were also popular. Starting in the mid-1990s, efforts began to harmonize modelling languages; to reconcile the leading models and focus on one unified specification. The graphic shows the evolution of and adoption of the <a href="Unified_Modeling_Language" title="Unified Modeling Language">Unified Modeling Language</a> (UML).
</p><p><br>
</p>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-Jacobsen_1992_https://archive.org/details/objectorientedso00jaco/page/15_15,199-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-Jacobsen_1992_https://archive.org/details/objectorientedso00jaco/page/15_15,199_1-0">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFJacobsenMagnus_ChristersonPatrik_JonssonGunnar_Overgaard1992" class="citation book cs1">Jacobsen, Ivar; Magnus Christerson; Patrik Jonsson; Gunnar Overgaard (1992). <a rel="nofollow" class="external text" href="https://archive.org/details/objectorientedso00jaco/page/15"><i>Object Oriented Software Engineering</i></a>. Addison-Wesley ACM Press. pp. <a rel="nofollow" class="external text" href="https://archive.org/details/objectorientedso00jaco/page/15">15, 199</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-201-54435-0</bdi>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFRiley2006" class="citation web cs1">Riley, Mike (April 1, 2006). <a rel="nofollow" class="external text" href="http://www.drdobbs.com/a-special-guide-mda-and-uml-tools-case-2/184415500">"A Special Guide-MDA and UML Tools: CASE 2.0—or the Developer's Dream"</a>. <i>drdobbs.com</i>. Dr. Dobb's<span class="reference-accessdate">. Retrieved <span class="nowrap">19 December</span> 2013</span>. <q>If it weren't for the dominance that UML has gained over the industry, MDA and related modeling standards couldn't even exist.</q></cite></span>
</li>
</ol></div></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-08-07" href="https://en.wikipedia.org/wiki/?title=Object-oriented_modeling&oldid=1304657332">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>